package com.pro.mapper;

import com.pro.pojo.CourseRecord;
import com.pro.pojo.OperationLog;
import com.pro.pojo.Product;
import com.pro.pojo.ProductCategroy;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: ProductMapper
 * @Author: Kai
 * @DATE: 2022/1/7
 * @TIME: 下午 01:54
 */
public interface ProductMapper {
    //查询所有商品分类
    List<ProductCategroy> getAllProductCategroy();

    //根据id删除商品分类
    Boolean deleteProductCategroy(Integer categoryId);

    //添加一条商品分类
    Boolean addProductCategroy(ProductCategroy productCategroy);

    //根据id修改一条商品分类
    Boolean updateProductCategroy(ProductCategroy productCategroy);

    //查询所有商品
    List<Product> getProduct(Product product);

    //根据id查询商品的详情信息
    Product getByIdProduct(Map map);

    //根据id修改商品
    Boolean updateProduct(Product product);

    //根据商品id查询商品状态
    List<CourseRecord> getCourseRecord(@Param("id") Integer id, @Param("type") Integer type);

    //根据商品id删除商品
    Boolean deleteProduct(Integer id);

    //添加商品
    Boolean addProduct(Product product);

    //添加商品审核记录
    Boolean addCourseRecord(CourseRecord courseRecord);

    /* 功能描述: <br>
    * 〈添加商品操作记录〉
    *
    * @param operationLog
    * @return: java.lang.Boolean
    * @Author: Kai
    * @Date: 2022/2/21 上午 10:23
    */
    Boolean addProductOperationRecord(OperationLog operationLog);

    /* 功能描述: <br>
     * 〈查询商品的操作记录〉
     *
     * @param: operationLog
     * @return: java.util.List<com.pro.pojo.OperationLog>
     * @Author: Kai
     * @Date: 2022/1/12 下午 04:22
     */
    List<OperationLog> getProductOperationLogs(OperationLog operationLog);

    /* 功能描述: <br>
    * 〈根据id删除商品操作记录〉
    *
    * @param id
    * @return: java.lang.Boolean
    * @Author: Kai
    * @Date: 2022/1/12 下午 04:41
    */
    @Delete("DELETE FROM js_operation_log WHERE id = #{id}")
    Boolean deleteProductOperationLog(Integer id);

    /* 功能描述: <br>
    * 〈根据名字查询id〉
    *
    * @param name
    * @return: java.util.List<java.lang.Integer>
    * @Author: Kai
    * @Date: 2022/1/12 下午 06:52
    */
    List<Integer> getByNameId(String name);

    /* 功能描述: <br>
    * 〈根据用户id获取商品列表〉
    *
    * @param product
    * @return: java.util.List<com.pro.pojo.Product>
    * @Author: Kai
    * @Date: 2022/1/13 下午 03:05
    */
    List<Product> getByUserIdProductLists(Product product);
}
